CROSS_COMPLIE ?= /opt/hcc_arm64le/bin/aarch64-target-linux-gnu-
CC := $(CROSS_COMPLIE)gcc
AR := $(CROSS_COMPLIE)ar


CFLAGS := -Wall -Wextra -I ./third_party_cJSON
TARGET := load_pcie
SRC := load_pcie.c
OBJ := $(SRC:.c=.o)

CJSON_DIR := third_party_cJSON
CJSON_TAG := OpenHarmony-v5.0.1-Release
CJSON_LIB := $(CJSON_DIR)/libcjson.a
CJSON_SRC := $(CJSON_DIR)/cJSON.c
CJSON_HEADER := $(CJSON_DIR)/cJSON.h

.PHONY: all clean

all: $(TARGET)


$(TARGET): $(OBJ) $(CJSON_LIB)
	$(CC) $^ -o $@ -lm

%.o: %.c $(CJSON_HEADER)
	$(CC) $(CFLAGS) -c $< -o $@

$(CJSON_LIB): $(CJSON_SRC) $(CJSON_HEADER)
	$(MAKE) -C $(CJSON_DIR) CC=$(CC) AR=$(AR) libcjson.a

$(CJSON_SRC) $(CJSON_HEADER):
	git clone --depth 1 --branch $(CJSON_TAG) https://gitcode.com/openharmony_mirror/third_party_cJSON.git


clean:
	rm -f $(TARGET) $(OBJ)
	-$(MAKE) -C $(CJSON_DIR) clean
	rm -rf $(CJSON_DIR)

distclean: clean
	rm -rf $(CJSON_DIR)